AWS CLI로 Application Load Balancer 생성해 보기
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS CLI로 Application Load Balancer를 생성해 보는 과정을 정리해 봤습니다.
시작하기 전에
시작하기 전에 확인해야 할 사항이 있습니다.
- Application Load Balancer를 지원하는 버전의 AWS CLI를 사용하고 있는지 확인
- 2대의 EC2 인스턴스가 생성된 상태인지 확인
aws elbv2 help
다음 명령어를 통해, Application Load Balancer를 지원하는 CLI인지 확인합니다.
CLI로 EC2 인스턴스를 생성하는 방법은 위 링크를 참고해 주세요.
CLI로 Application Load Balancer 생성
서브넷과 보안 그룹 확인
CLI로 Application Load Balancer를 생성하기 전에, 현재 EC2에서 사용하고 있는 서브넷과 보안 그룹을 알아야 합니다.
aws ec2 describe-vpcs
VPC ID를 확인합니다.
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=vpc-949667f2"
서로 다른 가용영역의 서브넷 아이디를 확인합니다.
aws ec2 describe-instances --filters --query 'Reservations[].Instances[].SecurityGroups'
위 명령어로 보안 그룹 아이디를 확인합니다.
Application LoadBalancer 생성
aws elbv2 create-load-balancer --name my-load-balancer \ --subnets subnet-636ad92b subnet-113a803a --security-groups sg-07c95b0a370732957
서로 다른 가용영역의 서브넷과, 보안 그룹을 넣어서 실행하면 Application Load Balancer가 생성됩니다.
대상 그룹 생성
aws elbv2 create-target-group --name my-targets --protocol HTTP --port 80 \ --vpc-id vpc-949667f2 aws elbv2 describe-target-groups aws elbv2 describe-target-group-attributes --target-group-arn 대상 그룹 arn
대상 그룹을 생성합니다. VPC는 EC2 인스턴스에 사용 된 것과 동일한 VPC를 지정합니다.
- aws elbv2 describe-target-groups
- aws elbv2 describe-target-group-attributes --target-group-arn 대상 그룹 arn
현재 대상 그룹의 상태와 속성을 확인합니다.
aws ec2 describe-instances --filters --query 'Reservations[].Instances[].InstanceId'
EC2 인스턴스를 대상 그룹에 추가
다음은 EC2 인스턴스를 대상 그룹에 추가해야 합니다. 먼저 EC2 인스턴스 ID를 확인하는 방법은 위 명령어를 입력하면 됩니다.
aws elbv2 register-targets --target-group-arn 대상 그룹 arn \ --targets Id=첫 번째 EC2 인스턴스 ID Id=두 번째 EC2 인스턴스 ID
위 명령어로 EC2 인스턴스를 대상 그룹에 추가합니다.
aws elbv2 describe-target-health --target-group-arn 대상 그룹 arn
대상 그룹 상태를 확인합니다.
리스너 생성 및 Healthy 체크
aws elbv2 create-listener --load-balancer-arn 로드밸런서 arn --protocol HTTP --port 80 --default-actions Type=forward,TargetGroupArn=대상 그룹 arn
프로토콜 및 포트를 사용하여 연결 요청을 수신하는 리스너를 생성합니다.
aws elbv2 describe-listeners --load-balancer-arn 로드밸런서 arn
현재 리스너 상태를 확인합니다.
aws elbv2 describe-target-health --target-group-arn 대상 그룹 arn
현재 대상 그룹의 상태를 확인합니다. State가「Healthy」상태면 Application LoadBalancer가 정상적으로 작동하고 있는 중 입니다.
aws elbv2 describe-load-balancers --query 'LoadBalancers[].DNSName'
표시된 공용 DNS에 대해 Web 페이지가 표시되면 아무 문제 없이 작동 중입니다.